package com.ipfsemc.ipfsemc.controller.v1;

import com.ipfsemc.ipfsemc.model.Fil;
import com.ipfsemc.ipfsemc.service.IFilService;
import com.ipfsemc.ipfsemc.util.JsonData;
import com.ipfsemc.ipfsemc.util.RespList;
import com.ipfsemc.ipfsemc.util.Response;
import com.ipfsemc.ipfsemc.util.ResponseBase;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import jdk.nashorn.internal.ir.annotations.Ignore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigDecimal;
import java.util.List;

@RestController
@RequestMapping("fil")
@Api(value = "FilController", tags = "Fil币")
public class FilController {
    private static final Logger logger = LoggerFactory.getLogger(BankController.class);
    @Autowired
    private IFilService filService;

//    @ApiOperation(value = "",httpMethod = "POST")
//    @RequestMapping(value = "addFil", method = RequestMethod.POST)
//    public JsonData addFil(Fil fil) {
//        JsonData jsonData = new JsonData();
//        try {
//            if (null == fil.getFilType() || null == fil.getFilNum()) {
//                jsonData.setMessage("参数异常！");
//            } else {
//                int add = filService.add(fil);
//                if (add > 0) {
//                    jsonData.setCode(0);
//                    jsonData.setMessage("操作成功！！");
//                } else {
//                    jsonData.setMessage("操作失败！请稍后再试！");
//                }
//            }
//
//        } catch (Exception ex) {
//            logger.error("[FilController][addFil]", ex);
//            jsonData.setMessage("系统错误,请稍后重试");
//        }
//        return jsonData;
//    }

    @ApiOperation(value = "Fil中心转出",httpMethod = "POST")

    @RequestMapping(value = "filOut", method = RequestMethod.POST)
    @ApiImplicitParams({
            @ApiImplicitParam(name="userId",value="用户ID",required=true,dataType="String"),
            @ApiImplicitParam(name="filNum",value="数量",required=true,dataType="BigDecimal"),
            @ApiImplicitParam(name="filItem",value="地址",required=true,dataType="String")
    })
    public ResponseBase filOut(String userId, BigDecimal filNum, String filItem) {
        ResponseBase jsonData = new ResponseBase();
        try {
            if (null == userId || null == filNum) {
                jsonData.setMessage("参数异常！");
            } else {
                Fil fil=new Fil();
                fil.setFilItem(filItem);
                fil.setUserId(userId);
                fil.setFilNum(filNum);
                fil.setFilType(2);
                int add = filService.add(fil);
                if (add > 0) {
                    jsonData.setCode(0);
                    jsonData.setMessage("操作成功！！");
                } else if(add==-2){
                    jsonData.setMessage("你的fil币不足");
                } else {
                    jsonData.setMessage("操作失败！请稍后再试！");
                }
            }

        } catch (Exception ex) {
            logger.error("[FilController][filOut]", ex);
            jsonData.setMessage("系统错误,请稍后重试");
        }
        return jsonData;
    }
    @ApiOperation(value = "fil明细和收益详情",httpMethod = "GET")
    @ApiImplicitParams({
            @ApiImplicitParam(name="userId",value="用户ID，fil明细传这个参数",required=true,dataType="String"),
            @ApiImplicitParam(name="spaceId",value="矿机ID，收益详情传这个参数",required=true,dataType="Long")
    })
    @RequestMapping(value = "listFil", method = RequestMethod.GET)
    public RespList<Fil> listFil(String userId, Long spaceId) {
        RespList jsonData = new RespList();
        try {
            if (null == userId && null == spaceId) {
                jsonData.setMessage("参数异常！");
            } else {
                Fil fil=new Fil();
                fil.setSpaceId(spaceId);
                fil.setUserId(userId);
                List<Fil> fils = filService.listFil(fil);
                jsonData.setResult(fils);
                jsonData.setCode(0);
            }

        } catch (Exception ex) {
            logger.error("[FilController][listFil]", ex);
            jsonData.setMessage("系统错误,请稍后重试");
        }
        return jsonData;
    }
}
